#ifndef _PIXEL_H_
#define _PIXEL_H_

#include "Images.h"
/**
 * Classe de Pixel à float,
 * on utilise des floats pour pouvoir avoir plus de 
 * précision
 */
class IMAGES_API Pixelf{
 public:
    /**
     * Constructeur nul
     */
    Pixelf(){R=G=B=0;};

    /**
     * Constructeur standard
     */
    Pixelf(float R,float G,float B);

    /**
     * Addition in-place
     * @param p pixel a additionner
     */
    void  operator+=(const Pixelf &p);

    /**
     * Addition
     * @param p pixel a additionner
     */
    Pixelf operator+(const Pixelf &p);

    /**
     * Multiplication par un pixel
     * @param f scalaire
     */
	Pixelf operator*(const Pixelf &f);

    /**
     * Multiplication par un scalaire
     * @param f scalaire
     */
	Pixelf operator*(const float &f);
    /**
     * Division par un scalaire
     * @param f scalaire
     */
	Pixelf operator/(const float &f);
	/**
	* Vérifie si les deux pixels sont égaux
	*/
	bool operator==(const Pixelf &p);
	/**
	* Vérifie si les deux pixels ne sont pas égaux
	*/
	bool operator!=(const Pixelf &p);

    float R; ///< Rouge
    float G; ///< Vert
    float B; ///< Bleu
};


#endif 
